In most engineering disciplines, systems are designed by using existing components.
Software engineering recognizes this technique to achieve better software more quickly
at a lower cost. Software reuse may take different forms, from ad hoc to systematic
approaches. It may span from small building blocks such as function or class to larger
components and subsystems. It not only involves code but also various artifacts in a
software project (Kruger, 1992). Systematic software reuse has been recognized as the
key strategy for increasing the productivity and improving quality, possibly with a
higher payoff than process improvement or process automation in software industry
(Bohem, 1993). However, successful implementation of software reuse is practically
difficult. This can be attributed to several factors, both technical and nontechnical,
relating to a software project as well as the organization.
There have been adequate research efforts to address the technical aspects of
software reuse. This may be in terms of finding development methodologies to create
reusable software components, creating repositories, developing tools for search and
retrieval of reusable artifacts. As technical knowhow in software industry becomes
matured, nontechnical factors such as organization, process, business drivers and human
involvement appeared to be equally important for successful software reuse. Factual
evidence to support the impact of these factors is still scarce or contradictory (Frakes
and Isoda, 1994). Further, the key factors which influence the success or failure of a
reuse program are difficult to find. In this work, we used data mining technique to find
key factors that predict the success or failure of reuse program in a software project.
The rest of the paper is organized as follows: Section 2 presents the methodological
approach proposed in the paper. Section 3 describes briefly the dataset used and the
preprocessing undertaken. Section 4 presents the design of the experiment. The results
are discussed in Section 5, finally followed by the conclusion.
|